home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
Games
/
xrobots
/
xrobots.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-03
|
4KB
|
172 lines
/*
* xrobots.h -- xrobots
*
* Copyright 1989 Brian Warkentine
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the author's name not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. The author makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
* DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* The author's current employer has no connection with this software, as it
* was written before being employed at Sun. The following address is for
* contacting the author only and does not imply any responsibility on the
* behalf of Sun Microsystems.
*
* Contact the author at:
* Brian Warkentine (brianw@Sun.COM)
* Sun Microsystems
* 2550 Garcia Avenue
* Mountain View, Ca 94043-1100
*
*/
#ifdef NO_RANDOM
#define random rand
#define srandom srand
#endif
/*
* from main.c
*/
extern Display *display;
extern Window playfield;
extern Widget playfield_widget;
extern GC gc,
cleargc;
extern Pixel fg,
bg;
extern Boolean spiffy,
autoteleport,
autoteleportalways,
showjumps,
diewaiting;
extern unsigned int
chasetime;
extern void update_score();
/*
* from graphics.c
*/
extern XtEventHandler redisplay_level();
extern void init_pixmaps(),
auto_teleport(),
display_possible_moves(),
display_level(),
update_pointer(),
free_pixmaps(),
do_death(),
show_teleport(),
show_sonic(),
show_movement();
#define CELLSIZE 21
#define pos_to_coord( _pos_ ) (( _pos_ ) * CELLSIZE + 5)
/*
* from actions.c
*/
extern void sonic_action(),
reset_sonic_button();
extern XtActionProc do_nothing_action(),
move_action(),
jump_action(),
go_here_action();
extern XtEventHandler pointer_moved();
extern int determine_direction();
/*
* from score.c
*/
#ifndef SCORE_FILE
# define SCORE_FILE "/usr/games/lib/xrobotscores"
#endif
#ifndef MAXSCORES
# define MAXSCORES 20
#endif
extern void check_score(),
create_high_score_popup();
extern void show_scores_callback();
extern char *score_filename;
/*
* from game.c
*/
#ifndef MAXX
# define MAXX 35
#endif
#ifndef MAXY
# define MAXY 20
#endif
#define EMPTY 0
#define ROBOT 1
#define HEAP 2
#define REDRAW 3
#define LEFT 1
#define RIGHT 2
#define UP 4
#define DOWN 8
#define STILL 16
#define for_each for(x=0;x<MAXX;x++) \
for(y=0;y<MAXY;y++)
/* I know, I KNOW... global variables! */
extern int human_x, human_y,
last_human_x, last_human_y;
extern int robot_array[MAXX][MAXY],
robot_array_bak[MAXX][MAXY];
extern int score,
num_robots,
game_active,
sonic_used;
#define MIN(a,b) ((a<b)?a:b)
#define MAX(a,b) ((a>b)?a:b)
#define INXRANGE( _x_ ) (((_x_) >=0) && ((_x_)<MAXX))
#define INYRANGE( _y_ ) (((_y_) >=0) && ((_y_)<MAXY))
extern void new_game(),
add_score(),
new_level();
extern int chase();
extern void undo_chase(),
teleport(),
sonic_screwdriver(),
wait_for_em();
extern int can_go();